/**
 * ReportGear(2011)
 */
package com.reportgear.report.model.cell.value.salary;

import org.dom4j.Element;

import com.reportgear.report.model.cell.value.AbstractCellObject;
import com.reportgear.report.model.cell.value.ModelDesignableValueObjectClassManager;

/**
 * 工资明细对象，四川电信<br/>
 * 组织机构或成本中心<br/>
 * 每个报表系统中只能有一个，生成报表是自动扩展<br/>
 * 
 * @version 1.0 2011-5-30
 * @author <a herf="lexloo@gmail.com">lexloo</a>
 * @since Report 1.0
 */
public class SalaryDetailObject extends AbstractCellObject {
	public SalaryDetailObject() {
		this.field = "deptName";
		this.name = "成本中心(组织机构)";
	}

	@Override
	public String toString() {
		return "工资明细对象(" + this.name + ")";
	}

	// 显示字段名
	private String field;
	// 名称
	private String name;

	/**
	 * 设置字段名
	 * 
	 * @param field
	 *            字段名
	 */
	public void setField(String field) {
		this.field = field;
	}

	/**
	 * 获取字段名
	 * 
	 * @return 字段名
	 */
	public String getField() {
		return field;
	}

	/**
	 * 设置名称
	 * 
	 * @param name
	 *            名称
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 获取名称
	 * 
	 * @return 名称
	 */
	public String getName() {
		return name;
	}

	@Override
	public void read(Element parent) {
		this.field = parent.elementTextTrim("field");
		this.name = parent.elementTextTrim("name");
	}

	@Override
	public void write(Element parent) {
		parent.addAttribute("class", ModelDesignableValueObjectClassManager.INSTANCE.getClassKey(this.getClass()));

		Element el = parent.addElement("field");
		el.addText(String.valueOf(this.field));

		el = parent.addElement("name");
		el.addText(this.name);
	}
}
